The present invention relates generally to memory management in a computer system and, specifically, to a memory management system for a computer system having multiple levels of virtual memory mapping tables.
Many types of general purpose computers and data processing systems contain memory that is organized using a "virtual memory" scheme. In general virtual memory allows applications and/or processes that are executing in the computer to behave as if they have an unlimited amount of memory at their disposal. In actuality, the amount of memory available to a particular application or process is limited by the amount of memory in the data processing system and further limited by the number of concurrently executing programs sharing that memory. In addition, a virtual memory scheme hides the actual physical address of memory from the application programs. Application programs access their memory space using a logical address, which is then converted to a physical address by the data processing system.
A virtual memory system organizes memory in units called "pages." These pages are moved between a fast, primary memory and one or more larger and usually slower secondary, tertiary, etc. memories. The movement of pages (often called "swapping") is transparent to the applications or processes that are executed in the data processing system, enabling the applications or processes to behave as if they each have an unlimited amount of memory.
Various conventional systems, however, are somewhat inefficient, either in how they swap pages or in how they manage various aspects of "clean-up" associated with swapping memory pages, especially under circumstances where two or more executing processes are allowed to share memory between themselves.